//
// Created by wyh on 2025-08-08 21:41.
//

#ifndef TEST_FILE_FILE_H
#define TEST_FILE_FILE_H

#include <string>

namespace wyh {
    namespace fs {
        class File
        {
        public:
            File()=delete;
            File(const std::string &path);
            ~File() = default;

            //获取文件路径
            std::string path() const;

            //获取文件所在的目录
            std::string dir() const;

            //创建一个空文件
            bool create();

            //删除文件
            bool remove();

            //修改文件名
            bool rename(const std::string &path);

            //清空文件
            void clear();

            //判断文件是否存在
            bool exists() const;

            //复制文件
            bool copy(const std::string &path);

            //获取文件的行数
            int line() const;

            //获取文件大小
            long size() const;

            //获取文件最后修改的时间
            time_t time() const;

            //读取文件全部内容
            std::string read() const;

            //写入文件
            bool write(const std::string &data);

        private:
            std::string m_path;
        };
    } // namespace fs
} // namespace wyh

#endif //TEST_FILE_FILE_H
